-- KEYS[1]: 分段库存key（如 seckill:stock:segment:1）
-- KEYS[2]: 备用库存key（seckill:stock:reserve）
-- 返回 1: 成功, 0: 失败

-- 1. 检查当前分段库存
local segmentStock = tonumber(redis.call("GET", KEYS[1]))
if segmentStock > 0 then
    -- 分段有库存，直接扣减
    redis.call("DECR", KEYS[1])
    return 1
end

-- 2. 分段无库存，尝试备用池
local reserveStock = tonumber(redis.call("GET", KEYS[2]))
if reserveStock > 0 then
    -- 备用池有库存，扣减
    redis.call("DECR", KEYS[2])
    return 1
end

-- 3. 分段和备用池均无库存
return 0
